import store from '@/store'
import router from '@/router/index'

router.beforeEach(async(to, form, next) => {
  if (store.state.user.token) {
    if (to.path === '/login') {
      // 有token 而且再登录页面  直接跳转到首页
      next('/')
    } else {
      // 有token的时候在其他页面直接放行
      // 其他情况 放行
      // 这里是确定了用户已经登录, 进入的是一个非 登录页外的其他正常页面
      // 需要在这, 进入页面之前获取数据, 这样能够保证无论进入的是哪个页面
      // vuex 当中都能获取到用户数据, 另外如果本来就已经获取过
      // 只是从一个页面进入到另一个, 没必要再次获取
      if (!store.state.user.profile) {
        await store.dispatch('user/getfile')

        // // console.log(23, '路由', routes)
        // const routes = await store.dispatch('permission/filterRouter')
        // router.addRoutes([...routes])
        next(to.path)
        return
      }
      next()
    }
  } else {
    const dataList = ['/login', '/404']
    if (dataList.includes(to.path)) {
      // 存在白名单 直接放行
      next()
    } else {
      // 不存在白名单就跳转到登录页面

      next('/login')
    }
  }
})
